package com.yc.common.enums;
/**
 * 验证码类型枚举
 *
 * @Author YanChen
 * @Date 2025/4/24 15:08
 */
public enum CaptchaType {
    
    /** 图片验证码 */
    IMAGE("image", "图片验证码"),
    
    /** 短信验证码 */
    SMS("sms", "短信验证码"),
    
    /** 邮件验证码 */
    EMAIL("email", "邮件验证码"),
    
    /** 数学计算验证码 */
    MATH("math", "数学计算验证码"),
    
    /** 滑动验证码 */
    SLIDE("slide", "滑动验证码"),
    
    /** 语音验证码 */
    VOICE("voice", "语音验证码");
    
    private final String code;
    private final String desc;
    
    CaptchaType(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    
    /**
     * 获取验证码类型代码
     * 
     * @return 类型代码
     */
    public String getCode() {
        return code;
    }
    
    /**
     * 获取验证码类型描述
     * 
     * @return 类型描述
     */
    public String getDesc() {
        return desc;
    }
    
    /**
     * 根据代码获取验证码类型
     * 
     * @param code 类型代码
     * @return 验证码类型
     */
    public static CaptchaType getByCode(String code) {
        for (CaptchaType type : CaptchaType.values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return IMAGE; // 默认返回图片验证码
    }
}